<?php

// uncomment the following to define a path alias
// Yii::setPathOfAlias('local','path/to/local-folder');

// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
    // 这是应用程序基础目录,默认情况下它是protected(位于和入口脚本index.php文件所在根目录下)
    'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..',
    'name' => '谷哥代码实验室',
    'language' => 'zh_cn', //不设置的话缺省为en_us

    //'defaultController' => 'user', // 如果不设置的话,默认为site

    // preloading 'log' component
    // 有的应用组件 (例如 CLogRouter) 可能需要在无论它们是否被访问的情况下都要被创建。
    // 要实现这个，需将其ID列在应用的 preload 属性里。
    'preload' => array(
        'log',
        'bootstrap', // preload the bootstrap component
    ),

    // autoloading model and component classes
    'import' => array(
        'application.models.*',
        'application.components.*',
        'application.widgets.bootstrap.*',
    ),

    'modules' => array(
        'gii' => array(
            'class' => 'system.gii.GiiModule',
            'password' => 'aaa',
            // If removed, Gii defaults to localhost only. Edit carefully to taste.
            'ipFilters' => array('127.0.0.1', '::1'),

            // 添加对Yii-BootStrap的支持
            'generatorPaths' => array(
                'bootstrap.gii', // since 0.9.1
            ),
        ),

        // 我增加了一个admin模块,用于组织所有后台管理程序,所以这里需要加一个
        'admin',
    ),

    // 应用程序管理了一系列的应用组件(components),每个component实现一特定的功能,
    // 可以在此灵活的自定义或者增强组件功能
    // 通过配置application的components属性,我们可以自定义应用程序中用到的任何组件类及其属性值.
    // 要访问一个应用组件,使用Yii::app()->ComponentID(例如cache,urlManager,user等)
    // 应用的组件可以通过在其配置中设置 enabled 为 false 禁用。当我们访问被禁用的组件时将返回 Null。
    // 默认情况下，应用组件会按需创建。这意味着一个应用的组件如果没有在一个用户请求中被访问，它可能根本不被创建。
    // 因此，如果一个应用配置了很多组件，其总体性能可能并不会下降。

    'components' => array(
        'user' => array(
            // enable cookie-based authentication
            'allowAutoLogin' => true,
        ),
        // uncomment the following to enable URLs in path-format

        // 配置urlManager组件
//        'urlManager' => array(
//            'urlFormat' => 'path',
//            //'showScriptName' => false,
//            'urlSuffix' => '.html',
//            'rules' => array(
//                // 在下面的例子里的规则的"路由部分"我们使用了两个命名参数<controller>/<action>
//                // 规则的前面的部分用来指示命名参数的正则表达式
//                '<controller:\w+>/<id:\d+>' => '<controller>/view',
//                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
//                '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
////                'post-view' => 'post/view',
////                'posts' => 'post/list',
////                'post/<id:\d+>' => 'post/read',
////                'post/<id:\d+>/*' => 'post/read',
////                'post/<year:\d{4}>/<title>' => 'post/read',
////                //'<controller:\w+>/<action:\w+>/<id:\w+>/<name:\w+>/<age:\w+>' => '<controller>/aaa',
//            ),
//        ),


        // 默认的这里用的是sqlite数据库,我们把去掉
//		'db'=>array(
//			'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
//		),

        // 我们的应用程序用的是mysql作为数据库管理,所以使用下面的配置
        'db' => array(
            'connectionString' => 'mysql:host=localhost;dbname=applab',
            'emulatePrepare' => true,
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
            'tablePrefix' => 'tbl_',
        ),

        'errorHandler' => array(
            // use 'site/error' action to display errors
            'errorAction' => 'site/error',
        ),
        'log' => array(
            'class' => 'CLogRouter',
            'routes' => array(
//                array(
//                    'class' => 'CFileLogRoute',
//                    'levels' => 'error, warning',
//                ),
                // uncomment the following to show log messages on web pages

                array(
                    'class' => 'CWebLogRoute',
                    //'levels'=>'error',
                    'filter' => 'CLogFilter',
                ),

            ),
        ),

        'bootstrap' => array(
            'class' => 'ext.bootstrap.components.Bootstrap', // assuming you extracted bootstrap under extensions
        ),

        // Mailer Extension
        'mailer' => array(
            'class' => 'application.extensions.mailer.EMailer',
            'pathViews' => 'application.views.email',
            'pathLayouts' => 'application.views.email.layouts',
        ),
    ),

    // application-level parameters that can be accessed
    // using Yii::app()->params['paramName']
    'params' => array(
        // this is used in contact page
        'adminEmail' => '29283212@qq.com',
    ),
);